package cn.com.yang;

import javax.mail.*;
import javax.mail.internet.*;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;

public class SendFile {
	public static void main(String[] args) {
		Properties props = System.getProperties();  
        // 创建信件服务器  
        props.put("mail.smtp.host", "smtp.qq.com");//主机host，跟邮件发送者必须一致
        props.put("mail.smtp.auth", "true"); // 通过验证
        props.put("mail.smtp.port", "465");//加密服务端口465
        props.put("mail.transport.protocol", "smtp");//方式为smtp
        props.put("mail.smtp.ssl.enable", "true");//加密
        //props.put("mail.debug", "true");//没什么用
        //创建mail会话
        Session session = Session.getDefaultInstance(props, null);  
        
        //创建一个消息把session放进去
        MimeMessage msg = new MimeMessage(session);
        //设置昵称加上发送邮箱
        try {
			msg.setFrom(new InternetAddress(MimeUtility.encodeText("发送人：") + "<810157156@qq.com>"));
		} catch (UnsupportedEncodingException | MessagingException e) {
			e.printStackTrace();
		}  
        
        //接收方
        InternetAddress address;
		try {
			//address = new InternetAddress("1656802050@qq.com");
			address = new InternetAddress("191959384@qq.com");
			//将地址添加到指定的接受类型
			msg.addRecipient(Message.RecipientType.TO, address); 
			//设置邮箱主题subject
			msg.setSubject("来自");
			//mime类型的Multipart部分，也就是正文：
			Multipart mp = new MimeMultipart(); 
			//添加文本
			MimeBodyPart mbp = new MimeBodyPart();  
			mbp.setText("您好啊！我是杨亿金");
			mp.addBodyPart(mbp);
			//设置mp为消息正文：
			msg.setContent(mp);  
			
			//没有附件直接设置消息正文
			/*msg.setText("正文");*/
			
			//设置消息头的日期，更新所有并保存：
			msg.setSentDate(new Date());

			msg.saveChanges();  
			
			Transport transport = session.getTransport("smtp");
			// iwhqpeclwihcbdbb
			transport.connect("810157156@qq.com", "iwhqpeclwihcbdbb");
			transport.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO));  
			transport.close();  
			
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
		
		///添加附件，多个附件重复多次
		/*MimeBodyPart mbp = new MimeBodyPart();  
	     // 得到数据源  
		FileDataSource fds = new FileDataSource(filename);  
		 // 得到附件本身并至入BodyPart  
		mbp.setDataHandler(new DataHandler(fds));  
		  // 得到文件名同样至入BodyPart  
		mbp.setFileName(fds.getName());  
		// 把这个mbp附件add进去  
		mp.addBodyPart(mbp);*/
	}

}
